home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1994 / MacHack 1994.toast / MacHack™ 1987-1994 / MacHack™ '91 / '91 Attendee Contributions / Jon Gary's Notes & Examples / Examples / Interfaces / HyperXCmd.p next >
Encoding:
Text File  |  1991-01-08  |  11.8 KB  |  386 lines  |  [TEXT/PJMM]

  1.       (*}
  2. {    HyperXCmd.p}
  3. {    Definition file for HyperCard XCMDs and XFCNs in Pascal}
  4. {    Copyright Apple Computer, Inc.  1987-1990}
  5. {    All rights reserved}
  6. {*)
  7.  
  8. {*    From the "10/4/90" posting on applelink.}
  9. {*    Modified: 10:28:36 AM  1/8/91    }
  10. {    By JEG - For THINK compatibility.}
  11. {*)
  12.  
  13.  
  14. {••}
  15. {•{$IFC UNDEFINED UsingIncludes•]}
  16. {•{$SETC UsingIncludes := 0•]}
  17. {•{$ENDC•]}
  18. {••}
  19. {•{$IFC NOT UsingIncludes•]}
  20.  
  21. UNIT HyperXCmd;
  22. INTERFACE
  23.  
  24. {•{$ENDC•]}
  25. {••}
  26. {•{$IFC UNDEFINED UsingHyperXCmd•]}
  27. {•{$SETC UsingHyperXCmd := 1•]}
  28. {••}
  29. {•{$I+•]}
  30. {•{$SETC HyperXCmdIncludes := UsingIncludes•]}
  31. {•{$SETC UsingIncludes := 1•]}
  32. {•{$IFC UNDEFINED UsingTypes•]}
  33. {•{$I $$Shell(PInterfaces)Types.p•]}
  34. {•{$ENDC•]}
  35. {•{$SETC UsingIncludes := HyperXCmdIncludes•]}
  36.  
  37.     CONST
  38.   { result codes }
  39.         xresSucc = 0;
  40.         xresFail = 1;
  41.         xresNotImp = 2;
  42.  
  43.   { XCMDBlock constants for event.what... }
  44.         xOpenEvt = 1000;         { the first event after you are created }
  45.         xCloseEvt = 1001;         { your window is being forced close (Quit?) }
  46.         xGiveUpEditEvt = 1002;         { you are losing Edit... }
  47.         xGiveUpSoundEvt = 1003;        { someone else is requesting HyperCard's sound channel }
  48.         xHidePalettesEvt = 1004;        { someone called HideHCPalettes }
  49.         xShowPalettesEvt = 1005;        { someone called ShowHCPalettes }
  50.         xEditUndo = 1100;        { Edit——Undo }
  51.         xEditCut = 1102;        { Edit——Cut }
  52.         xEditCopy = 1103;        { Edit——Copy }
  53.         xEditPaste = 1104;        { Edit——Paste }
  54.         xEditClear = 1105;        { Edit——Clear }
  55.         xSendEvt = 1200;        { script has sent you a message (text) }
  56.         xSetPropEvt = 1201;        { set a window property }
  57.         xGetPropEvt = 1202;        { get a window property }
  58.         xCursorWithin = 1300;        { cursor is within the window }
  59.         xMenuEvt = 1400;        { user has selected an item in your menu }
  60.         xMBarClickedEvt = 1401;        { a menu is about to be shown--update if needed }
  61.  
  62.         xShowWatchInfoEvt = 1501;        { for variable and message watchers }
  63.         xScriptErrorEvt = 1502;        { place the insertion point }
  64.         xDebugErrorEvt = 1503;        { user clicked "Debug" at a complaint }
  65.         xDebugStepEvt = 1504;        { hilite the line }
  66.         xDebugTraceEvt = 1505;        { same as step but tracing }
  67.         xDebugFinishedEvt = 1506;        { script ended }
  68.  
  69.         paletteProc = 2048;        { Windoid with grow box }
  70.         palNoGrowProc = 2052;        { standard Windoid defproc }
  71.         palZoomProc = 2056;        { Windoid with zoom and grow }
  72.         palZoomNoGrow = 2060;        { Windoid with zoom and no grow }
  73.         hasZoom = 8;
  74.         hasTallTBar = 2;
  75.         toggleHilite = 1;
  76.  
  77.         maxCachedChecks = 16;        { maximum number of checkpoints in a script }
  78.  
  79.   { paramCount is set to these constants when first calling special XThings }
  80.         xMessageWatcherID = -2;
  81.         xVariableWatcherID = -3;
  82.         xScriptEditorID = -4;
  83.         xDebuggerID = -5;
  84.  
  85.   { XTalkObjectPtr^.objectKind values }
  86.         stackObj = 1;
  87.         bkgndObj = 2;
  88.         cardObj = 3;
  89.         fieldObj = 4;
  90.         buttonObj = 5;
  91.  
  92.   { selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) }
  93.         errorDlgID = 1;    { 1:OK (default) }
  94.         confirmDlgID = 2;    { 1:OK (default) and 2:Cancel }
  95.         confirmDelDlgID = 3;    { 1:Cancel (default) and 2:Delete }
  96.         yesNoCancelDlgID = 4;    { 1:Yes (default), 2:Cancel, and 3:No }
  97.  
  98.  
  99.     TYPE
  100.         XCmdPtr = ^XCmdBlock;
  101.         XCmdBlock = RECORD
  102.                 paramCount: INTEGER; { If = -1 then new use for XWindoids }
  103.                 params: ARRAY[1..16] OF Handle;
  104.                 returnValue: Handle;
  105.                 passFlag: BOOLEAN;
  106.  
  107.                 entryPoint: ProcPtr; { to call back to HyperCard }
  108.                 request: INTEGER;
  109.                 result: INTEGER;
  110.                 inArgs: ARRAY[1..8] OF LongInt;
  111.                 outArgs: ARRAY[1..4] OF LongInt;
  112.             END;
  113.  
  114.         XWEventInfoPtr = ^XWEventInfo;
  115.         XWEventInfo = RECORD
  116.                 event: EventRecord;
  117.                 eventWindow: WindowPtr;
  118.                 eventParams: ARRAY[1..9] OF LongInt;
  119.                 eventResult: Handle;
  120.             END;
  121.  
  122.         XTalkObjectPtr = ^XTalkObject;
  123.         XTalkObject = RECORD
  124.                 objectKind: INTEGER;    { stack, bkgnd, card, field, or button }
  125.                 stackNum: LongInt;    { reference number of the source stack }
  126.                 bkgndID: LongInt;
  127.                 cardID: LongInt;
  128.                 buttonID: LongInt;
  129.                 fieldID: LongInt;
  130.             END;
  131.  
  132.         CheckPtHandle = ^CheckPtPtr;
  133.         CheckPtPtr = ^CheckPts;
  134.         CheckPts = RECORD
  135.                 checks: ARRAY[1..maxCachedChecks] OF INTEGER;
  136.             END;
  137.  
  138.  
  139. (****  HyperTalk Utilities  ****)
  140.     FUNCTION EvalExpr (paramPtr: XCmdPtr;
  141.                                     expr: Str255): Handle;
  142.     PROCEDURE SendCardMessage (paramPtr: XCmdPtr;
  143.                                     msg: Str255);
  144.     PROCEDURE SendHCMessage (paramPtr: XCmdPtr;
  145.                                     msg: Str255);
  146.     PROCEDURE RunHandler (paramPtr: XCmdPtr;
  147.                                     handler: Handle);
  148.  
  149. (****  Memory Utilities  ****)
  150.     FUNCTION GetGlobal (paramPtr: XCmdPtr;
  151.                                     globName: Str255): Handle;
  152.     PROCEDURE SetGlobal (paramPtr: XCmdPtr;
  153.                                     globName: Str255;
  154.                                     globValue: Handle);
  155.     PROCEDURE ZeroBytes (paramPtr: XCmdPtr;
  156.                                     dstPtr: Ptr;
  157.                                     longCount: LongInt);
  158.  
  159. (****  String Utilities  ****)
  160.     PROCEDURE ScanToReturn (paramPtr: XCmdPtr;
  161.                                     VAR scanPtr: Ptr);
  162.     PROCEDURE ScanToZero (paramPtr: XCmdPtr;
  163.                                     VAR scanPtr: Ptr);
  164.     FUNCTION StringEqual (paramPtr: XCmdPtr;
  165.                                     str1, str2: Str255): BOOLEAN;
  166.     FUNCTION StringLength (paramPtr: XCmdPtr;
  167.                                     strPtr: Ptr): LongInt;
  168.     FUNCTION StringMatch (paramPtr: XCmdPtr;
  169.                                     pattern: Str255;
  170.                                     target: Ptr): Ptr;
  171.     PROCEDURE ZeroTermHandle (paramPtr: XCmdPtr;
  172.                                     hndl: Handle);
  173.  
  174. (****  String Conversions  ****)
  175.     PROCEDURE BoolToStr (paramPtr: XCmdPtr;
  176.                                     bool: BOOLEAN;
  177.                                     VAR str: Str255);
  178.     PROCEDURE ExtToStr (paramPtr: XCmdPtr;
  179.                                     num: Extended;
  180.                                     VAR str: Str255);
  181.     PROCEDURE LongToStr (paramPtr: XCmdPtr;
  182.                                     posNum: LongInt;
  183.                                     VAR str: Str255);
  184.     PROCEDURE NumToHex (paramPtr: XCmdPtr;
  185.                                     num: LongInt;
  186.                                     nDigits: INTEGER;
  187.                                     VAR str: Str255);
  188.     PROCEDURE NumToStr (paramPtr: XCmdPtr;
  189.                                     num: LongInt;
  190.                                     VAR str: Str255);
  191.     FUNCTION PasToZero (paramPtr: XCmdPtr;
  192.                                     str: Str255): Handle;
  193.     PROCEDURE PointToStr (paramPtr: XCmdPtr;
  194.                                     pt: Point;
  195.                                     VAR str: Str255);
  196.     PROCEDURE RectToStr (paramPtr: XCmdPtr;
  197.                                     rct: Rect;
  198.                                     VAR str: Str255);
  199.     PROCEDURE ReturnToPas (paramPtr: XCmdPtr;
  200.                                     zeroStr: Ptr;
  201.                                     VAR pasStr: Str255);
  202.     FUNCTION StrToBool (paramPtr: XCmdPtr;
  203.                                     str: Str255): BOOLEAN;
  204.     FUNCTION StrToExt (paramPtr: XCmdPtr;
  205.                                     str: Str255): Extended;
  206.     FUNCTION StrToLong (paramPtr: XCmdPtr;
  207.                                     str: Str255): LongInt;
  208.     FUNCTION StrToNum (paramPtr: XCmdPtr;
  209.                                     str: Str255): LongInt;
  210.     PROCEDURE StrToPoint (paramPtr: XCmdPtr;
  211.                                     str: Str255;
  212.                                     VAR pt: Point);
  213.     PROCEDURE StrToRect (paramPtr: XCmdPtr;
  214.                                     str: Str255;
  215.                                     VAR rct: Rect);
  216.     PROCEDURE ZeroToPas (paramPtr: XCmdPtr;
  217.                                     zeroStr: Ptr;
  218.                                     VAR pasStr: Str255);
  219.  
  220. (****  Field Utilities  ****)
  221.     FUNCTION GetFieldByID (paramPtr: XCmdPtr;
  222.                                     cardFieldFlag: BOOLEAN;
  223.                                     fieldID: INTEGER): Handle;
  224.     FUNCTION GetFieldByName (paramPtr: XCmdPtr;
  225.                                     cardFieldFlag: BOOLEAN;
  226.                                     fieldName: Str255): Handle;
  227.     FUNCTION GetFieldByNum (paramPtr: XCmdPtr;
  228.                                     cardFieldFlag: BOOLEAN;
  229.                                     fieldNum: INTEGER): Handle;
  230.     PROCEDURE SetFieldByID (paramPtr: XCmdPtr;
  231.                                     cardFieldFlag: BOOLEAN;
  232.                                     fieldID: INTEGER;
  233.                                     fieldVal: Handle);
  234.     PROCEDURE SetFieldByName (paramPtr: XCmdPtr;
  235.                                     cardFieldFlag: BOOLEAN;
  236.                                     fieldName: Str255;
  237.                                     fieldVal: Handle);
  238.     PROCEDURE SetFieldByNum (paramPtr: XCmdPtr;
  239.                                     cardFieldFlag: BOOLEAN;
  240.                                     fieldNum: INTEGER;
  241.                                     fieldVal: Handle);
  242.     FUNCTION GetFieldTE (paramPtr: XCmdPtr;
  243.                                     cardFieldFlag: BOOLEAN;
  244.                                     fieldID, fieldNum: INTEGER;
  245.                                     fieldNamePtr: StringPtr): TEHandle;
  246.     PROCEDURE SetFieldTE (paramPtr: XCmdPtr;
  247.                                     cardFieldFlag: BOOLEAN;
  248.                                     fieldID, fieldNum: INTEGER;
  249.                                     fieldNamePtr: StringPtr;
  250.                                     fieldTE: TEHandle);
  251.  
  252. (****  Miscellaneous Utilities  ****)
  253.     PROCEDURE BeginXSound (paramPtr: XCmdPtr;
  254.                                     window: WindowPtr);
  255.     PROCEDURE EndXSound (paramPtr: XCmdPtr);
  256.     FUNCTION GetFilePath (paramPtr: XCmdPtr;
  257.                                     fileName: Str255;
  258.                                     numTypes: INTEGER;
  259.                                     typeList: SFTypeList;
  260.                                     askUser: BOOLEAN;
  261.                                     VAR fileType: OSType;
  262.                                     VAR fullName: Str255): BOOLEAN;
  263.     PROCEDURE GetXResInfo (paramPtr: XCmdPtr;
  264.                                     VAR resFile: INTEGER;
  265.                                     VAR resID: INTEGER;
  266.                                     VAR rType: ResType;
  267.                                     VAR name: Str255);
  268.     PROCEDURE Notify (paramPtr: XCmdPtr);
  269.     PROCEDURE SendHCEvent (paramPtr: XCmdPtr;
  270.                                     event: EventRecord);
  271.     PROCEDURE SendWindowMessage (paramPtr: XCmdPtr;
  272.                                     windPtr: WindowPtr;
  273.                                     windowName: Str255;
  274.                                     msg: Str255);
  275.     FUNCTION FrontDocWindow (paramPtr: XCmdPtr): WindowPtr;
  276.     FUNCTION StackNameToNum (paramPtr: XCmdPtr;
  277.                                     stackName: Str255): LongInt;
  278.     FUNCTION ShowHCAlert (paramPtr: XCMDPtr;
  279.                                     dlgID: INTEGER;
  280.                                     promptStr: Str255): INTEGER;
  281.  
  282. (****  Creating and Disposing XWindoids  ****)
  283.     FUNCTION NewXWindow (paramPtr: XCmdPtr;
  284.                                     boundsRect: Rect;
  285.                                     title: Str255;
  286.                                     visible: BOOLEAN;
  287.                                     procID: INTEGER;
  288.                                     color: BOOLEAN;
  289.                                     floating: BOOLEAN): WindowPtr;
  290.     FUNCTION GetNewXWindow (paramPtr: XCmdPtr;
  291.                                     templateType: ResType;
  292.                                     templateID: INTEGER;
  293.                                     color: BOOLEAN;
  294.                                     floating: BOOLEAN): WindowPtr;
  295.     PROCEDURE CloseXWindow (paramPtr: XCmdPtr;
  296.                                     window: WindowPtr);
  297.  
  298. (****  XWindoid Utilities  ****)
  299.     PROCEDURE HideHCPalettes (paramPtr: XCmdPtr);
  300.     PROCEDURE ShowHCPalettes (paramPtr: XCmdPtr);
  301.     PROCEDURE RegisterXWMenu (paramPtr: XCmdPtr;
  302.                                     window: WindowPtr;
  303.                                     menu: MenuHandle;
  304.                                     registering: BOOLEAN);
  305.     PROCEDURE SetXWIdleTime (paramPtr: XCmdPtr;
  306.                                     window: WindowPtr;
  307.                                     interval: LongInt);
  308.     PROCEDURE XWHasInterruptCode (paramPtr: XCmdPtr;
  309.                                     window: WindowPtr;
  310.                                     haveCode: BOOLEAN);
  311.     PROCEDURE XWAlwaysMoveHigh (paramPtr: XCmdPtr;
  312.                                     window: WindowPtr;
  313.                                     moveHigh: BOOLEAN);
  314.     PROCEDURE XWAllowReEntrancy (paramPtr: XCmdPtr;
  315.                                     window: WindowPtr;
  316.                                     allowSysEvts: BOOLEAN;
  317.                                     allowHCEvts: BOOLEAN);
  318.  
  319. (****  Text Editing Utilities  ****)
  320.     PROCEDURE BeginXWEdit (paramPtr: XCmdPtr;
  321.                                     window: WindowPtr);
  322.     PROCEDURE EndXWEdit (paramPtr: XCmdPtr;
  323.                                     window: WindowPtr);
  324.     FUNCTION HCWordBreakProc (paramPtr: XCmdPtr): ProcPtr;
  325.     PROCEDURE PrintTEHandle (paramPtr: XCmdPtr;
  326.                                     hTE: TEHandle;
  327.                                     header: StringPtr);
  328.  
  329. (****  Script Editor support  ****)
  330.     FUNCTION GetCheckPoints (paramPtr: XCmdPtr): CheckPtHandle;
  331.     PROCEDURE SetCheckPoints (paramPtr: XCmdPtr;
  332.                                     checkLines: CheckPtHandle);
  333.     PROCEDURE FormatScript (paramPtr: XCmdPtr;
  334.                                     scriptHndl: Handle;
  335.                                     VAR insertionPoint: LongInt;
  336.                                     quickFormat: BOOLEAN);
  337.     PROCEDURE SaveXWScript (paramPtr: XCmdPtr;
  338.                                     scriptHndl: Handle);
  339.     PROCEDURE GetObjectName (paramPtr: XCmdPtr;
  340.                                     anObject: XTalkObjectPtr;
  341.                                     VAR objName: Str255);
  342.     PROCEDURE GetObjectScript (paramPtr: XCmdPtr;
  343.                                     anObject: XTalkObjectPtr;
  344.                                     VAR scriptHndl: Handle);
  345.     PROCEDURE SetObjectScript (paramPtr: XCmdPtr;
  346.                                     anObject: XTalkObjectPtr;
  347.                                     scriptHndl: Handle);
  348.  
  349. (****  Debugging Tools support  ****)
  350.     PROCEDURE AbortScript (paramPtr: XCmdPtr);
  351.     PROCEDURE GoScript (paramPtr: XCmdPtr);
  352.     PROCEDURE StepScript (paramPtr: XCmdPtr;
  353.                                     stepInto: BOOLEAN);
  354.     PROCEDURE CountHandlers (paramPtr: XCmdPtr;
  355.                                     VAR handlerCount: INTEGER);
  356.     PROCEDURE GetHandlerInfo (paramPtr: XCmdPtr;
  357.                                     handlerNum: INTEGER;
  358.                                     VAR handlerName: Str255;
  359.                                     VAR objectName: Str255;
  360.                                     VAR varCount: INTEGER);
  361.     PROCEDURE GetVarInfo (paramPtr: XCmdPtr;
  362.                                     handlerNum: INTEGER;
  363.                                     varNum: INTEGER;
  364.                                     VAR varName: Str255;
  365.                                     VAR isGlobal: BOOLEAN;
  366.                                     VAR varValue: Str255;
  367.                                     varHndl: Handle);
  368.     PROCEDURE SetVarValue (paramPtr: XCmdPtr;
  369.                                     handlerNum: INTEGER;
  370.                                     varNum: INTEGER;
  371.                                     varHndl: Handle);
  372.     FUNCTION GetStackCrawl (paramPtr: XCmdPtr): Handle;
  373.     PROCEDURE TraceScript (paramPtr: XCmdPtr;
  374.                                     traceInto: BOOLEAN);
  375.  
  376.  
  377. {•{$ENDC•]}
  378. {•    { UsingHyperXCmd •]}
  379. {••}
  380. {•{$IFC NOT UsingIncludes•]}
  381.  
  382. IMPLEMENTATION    {added because THINK Requires it. }
  383.  
  384. END.
  385.  
  386. {•{$ENDC•]}